#include <stdio.h>

void merge(int *nums1, int nums1Size, int m, int *nums2, int nums2Size, int n) {
    int i = m - 1, j = n - 1;
    for (int k = m + n - 1; k >= 0; --k) {
        if (i < 0) {
            *(nums1 + k) = *(nums2 + j--);
        } else if (j < 0) {
            *(nums1 + k) = *(nums1 + i--);
        } else {
            if (*(nums1 + i) > *(nums2 + j)) {
                *(nums1 + k) = *(nums1 + i--);
            } else {
                *(nums1 + k) = *(nums2 + j--);
            }
        }
    }
}

int main() {
    int nums1[6] = {1, 2, 3, 0, 0, 0}, nums2[3] = {2, 5, 6};
    int m = 3, n = 3;
    merge(nums1, 3, m, nums2, 3, n);

    for (int i = 0; i < 6;++i) {
        printf("%d", *(nums1 + i));
    }
}